According to some studies, the volume of information over a network, such as the Internet, is expected to more than triple over the next three years. Data and content is likely to remain the largest percentage of Internet traffic, with the majority of this information being dynamic. Often, the issues of concern with Internet traffic range from business to consumer response and order times, to the time required to deliver business information to a traveler using a wireless device, to the download time for rich media such as music, videos, and so forth. Thus, not surprisingly, a major complaint among Internet users is a lack of speed. Additionally, users' complaints often center on how long it takes to display a web page, or other content, on their computing device. One solution therefore, may be to send less data. This is where compression may help.
One way that this is performed by compressing data being sent from a server, and having a client's browser decompress this data upon receipt, thereby reducing the amount of data sent over the Internet, and increasing a web page display speed. Many, although not all, browsers are now equipped to support the Hypertext Transfer Protocol (HTTP) modes that enable compression.
A number of compression algorithms are available for compressing data. The Lempel-Ziv (LZ) compression methods are a set of well-known compression algorithms. DEFLATE is a variation on LZ, and is used in the PKZIP, gzip, and PNG compression algorithms. Lempel-Ziv-Welch (LZW) and LZ-Renau (LZR) are also known compression algorithms. There exist other compression algorithms as well. Some compression algorithms can be performed with one or more parameters that affect one or more of the speed at which the algorithm executes, the amount of memory used during compression, or the data compression ratio. As used herein, the term “compression mode” refers to a combination of a compression algorithm and parameters or factors that distinguish the resulting compressed data. For example, gzip can be invoked with an optional parameter that indicates a relative speed that the algorithm is to be performed. Thus, “gzip-1 generally executes at a higher speed than “gzip-9.” Typically, though not always, the slower mode of gzip results in a higher compression ratio. Each of the allowable speed designations is therefore considered to be a different compression algorithm as used herein.
Some devices are configured to perform a specific compression mode. However, computer systems are complex, and this does not always produce the optimal results. Thus, it is with respect to these considerations and others that the present invention has been made.